package com.module.ble.db.table

import android.os.Parcelable
import androidx.room.ColumnInfo
import androidx.room.Entity
import androidx.room.Ignore
import androidx.room.PrimaryKey
import com.module.ble.data.bean.CusUnifyData
import kotlinx.parcelize.Parcelize

/**
 * 作者：sosou
 * <p>
 * 版本：1.0
 * <p>
 * 创建日期：2025/04/16
 * <p>
 * 描述：运动记录
 * <p>
 * 修订历史：
 */
@Parcelize
@Entity(tableName = "sport_record")
class UserSportRecord : CusUnifyData,Parcelable {

    //创建时间、开始时间   *
    @PrimaryKey
    @ColumnInfo
    var startTs: Long = 0L

    //结束时间   *
    @ColumnInfo
    var endTs: Long = 0L

    @Ignore
    override var createdTime: Long = 0
        get() = startTs

    //厂商   *
    @ColumnInfo
    var firmName: String? = ""

    //mac   *
    @ColumnInfo
    var macAddress: String? = ""

    //运动类型   *
    @ColumnInfo
    var sportType : Int = -1

    //设备，即设备MAC地址   *
    @ColumnInfo
    var device: String? = ""

    //该条记录对应的设备ID
    @ColumnInfo
    var deviceId: String? = ""

    //创建时间(年月日)
    @ColumnInfo
    var date: String? = ""

    //该条记录对应的账号id
    @ColumnInfo
    var userId: String? = ""

    //运动时长，单位：秒   *
    @ColumnInfo
    var duration: Long = 0L

    //运动详细数据时间间隔，单位：秒   *
    @ColumnInfo
    var interval : Long = 0

    //运动总步数，单位：步   *
    @ColumnInfo
    var steps: Long = 0

    //运动总消耗卡路里，单位：千卡   *
    @ColumnInfo
    var calories : Float = 0f

    //运动总距离，单位：米   *
    @ColumnInfo
    var distance : Float = 0f

    //平均配速，单位：秒/千米   *
    @ColumnInfo
    var paceAvg : Float = 0f

    //最大配速，单位：秒/千米   *
    @ColumnInfo
    var paceMax : Float = 0f

    //最小配速，单位：秒/千米   *
    @ColumnInfo
    var paceMin : Float = 0f

    //平均速度，单位：千米/小时   *
    @ColumnInfo
    var avgSpeed : Float = 0f

    //最快速度，单位：千米/小时   *
    @ColumnInfo
    var maxSpeed : Float = 0f

    //最慢速度，单位：千米/小时   *
    @ColumnInfo
    var minSpeed : Float = 0f

    //平均步频，单位：步/分钟   *
    @ColumnInfo
    var sfAvg : Double = 0.00

    //最高步频，单位：步/分钟   *
    @ColumnInfo
    var sfMax : Double = 0.00

    //最低步频，单位：步/分钟   *
    @ColumnInfo
    var sfMin : Double = 0.00

    //平均心率，单位：bpm   *
    @ColumnInfo
    var hrAvg : Int = 0
    //最高心率，单位：bpm   *
    @ColumnInfo
    var hrMax : Int = 0
    //最低心率，单位：bpm   *
    @ColumnInfo
    var hrMin : Int = 0
    //判断是否已上传后端
    @ColumnInfo
    var ID : Int = 0
    //运动记录详细数据列表json格式   *
    @ColumnInfo
    var stages : String? = ""

    //数据版本
    @ColumnInfo
    var dataVersion : Long = 0L

    //同步状态   *
    @ColumnInfo
    override var sysStat : Int = 0

    //时区   *
    @ColumnInfo
    var timeZone : String? = ""

    override val mTime: Long
        get() = startTs

    override val value: Number
        get() = -1
}